cmake_minimum_required(VERSION 3.19)
project(jvm)

set(CMAKE_CXX_STANDARD 14)

message("------${PROJECT_SOURCE_DIR}-----")
message("------${PROJECT_SOURCE_DIR}-----")
message("------${PROJECT_SOURCE_DIR}-----")

include_directories("/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home/include")
include_directories("/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home/include/darwin")


add_executable(jvm main.cpp src/memory/MemoryCell.cpp include/memory/memory_chunk.h src/memory/MemoryChunk.cpp include/memory/memory_pool.h src/memory/MemoryPool.cpp include/gc/interface/garbage_collect.h include/gc/mark_clean.h include/gc/gc_factory.h src/gc/GcFactory.cpp src/gc/MarkClean.cpp include/gc/mark_compact.h src/gc/MarkCompact.cpp include/gc/mark_copy.h src/gc/MarkCopy.cpp src/jni/com_lemon_jvm_example_jni_HelloWorld.cpp src/jni/com_lemon_jvm_example_jni_JavaThread.cpp src/jni/com_lemon_jvm_jdk_Threads.cpp src/jni/com_lemon_jvm_jdk_sun_misc_Unsafe.cpp src/vm/share/memory/universe.cpp src/vm/share/memory/universe.h src/vm/share/gc_interface/CollectedHeap.cpp src/vm/share/gc_interface/CollectedHeap.h src/vm/share/adlc/arena.cpp src/vm/share/adlc/arena.h src/vm/share/memory/collectorPolicy.cpp src/vm/share/memory/collectorPolicy.h src/vm/share/memory/allocation.cpp src/vm/share/memory/allocation.h src/vm/share/utilities/debug.cpp src/vm/share/utilities/debug.h src/vm/share/classfile/classLoader.cpp src/vm/share/classfile/classLoader.h src/vm/share/classfile/classFileStream.cpp src/vm/share/classfile/classFileStream.h src/vm/share/utilities/globalDefinitions.h src/vm/share/oops/klass.cpp src/vm/share/oops/klass.h src/vm/share/oops/instanceKlass.cpp src/vm/share/oops/instanceKlass.h src/vm/share/classfile/classFileParser.cpp src/vm/share/classfile/classFileParser.h src/vm/share/utilities/ostream.cpp src/vm/share/utilities/ostream.h src/vm/share/utilities/top.h src/cpu/os/bytes.h)